import {GptVersion} from "@/app/constants";

/**
 * 定义一个对话框类型的接口
 * 用于描述对话框的各种属性
 */
export interface Dialog {
    // 头像
    avatar: string;
    // // 对话ID
    // dialogId: number;
    // // 是否阅读
    // read: boolean;
    // 小标题
    subTitle: string;
    // 对话最后时间
    timestamp: number;
    // 聊天头
    title: string;
    // 消息体
    count: number;
}

/**
 * 定义一个消息对象的接口。
 *
 * @interface Message
 * @property {string} avatar 消息发送者的头像URL。
 * @property {string} message 消息的内容。
 * @property {MessageType} message_type 消息的类型，由MessageType枚举类型定义。
 * @property {number} time 消息发送的时间戳。
 * @property {MessageDirection} [direction] 消息的方向，可选字段，由MessageDirection枚举类型定义。
 *
 * 这个接口描述了消息的基本结构，包括消息的发送者信息、消息内容、消息类型、发送时间以及可选的消息方向。
 */
export interface Message {
    avatar: string;
    content: string;
    message_type: MessageType;
    time: number;
    direction?: MessageDirection;
    role: MessageRole;
    id: string;
    streaming?: boolean;
}

export enum MessageRole {
    system = "system",
    user = "user",
    assistant = "assistant",
}
export interface SessionConfig {
    gptVersion: GptVersion;
}

/**
 * 定义消息类型的枚举
 * 用于标识消息的类型，包括链接、图片和文本三种类型
 */
export enum MessageType {
    // 链接类型
    Link = "link",
    // 图片类型
    Pic = "pic",
    // 文本类型
    Text = "text",
}
/**
 * 消息方向枚举
 * 用于标识消息是发送还是接收
 */
export enum MessageDirection {
    Send = 0,
    Receive,
}